package com.ny.controller;

import com.ny.device.Devices;
import com.ny.entity.Result;
import com.ny.service.DeviceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/device") // 添加类级别映射
public class DeviceController {

    @Autowired
    private DeviceService deviceService;
    //`http://localhost:8081/findAllDevices`
    // 根据设备id删除设备:http://localhost:8080/deleteDeviceById?deviceId=1
    @DeleteMapping("/deleteDeviceById")
    public Result deleteDeviceById(@RequestParam int deviceId){
        deviceService.deleteByDeviceId(deviceId);
        return Result.success("删除成功");
    }

    // 根据设备名称模糊查询（示例：输入“厨”查询包含“厨”的设备）:http://localhost:8080/findDeviceByNameLike?name=厨
    @GetMapping("/findDeviceByNameLike")
    public Result findDeviceByNameLike(@RequestParam String name){
        return Result.success(deviceService.findByNameLike(name));
    }

    // 已有的接口...

    // 添加新设备:http://localhost:8080/addDevice
    @PostMapping("/addDevice")
    public Result addDevice(@RequestBody Devices device){
        return Result.success(deviceService.addDevice(device));
    }

    // 根据设备id修改名称（示例：修改id=2的设备名为“灯泡”）:http://localhost:8080/updateDeviceName?deviceId=2&newName=灯泡
    @PutMapping("/updateDeviceName")
    public Result updateDeviceName(
            @RequestParam int deviceId,
            @RequestParam String newName
    ){
        return Result.success(deviceService.updateDeviceNameById(deviceId, newName));
    }
    @GetMapping("/findAllDevices")
    public Result findAllDevices(){
        return Result.success(deviceService.findAll());
    }
    // 根据设备名称查询（精确匹配）:http://localhost:8080/findDeviceByName?name=电脑
    @GetMapping("/findDeviceByName")
    public Result findDeviceByName(@RequestParam String name){
        return Result.success(deviceService.findByName(name));
    }

//    6节：实现查询所有的设备数据、实现根据设备名称查询设备数据
//    7节：添加一条设备信息       根据设备id修改设备信息：比如把设备id为2的设备名称改为“灯泡”
//    8节：根据设备id删除设备数据。   根据设备名称模糊查询设备数据。比如你输入 厨 =》得到包含所有的厨字的设备、
//     提交截图以及git提交路径
//    图片命名姓名-功能、
//    提交的时间：5.50下课提交。

}